package com.yida.gwj.expend.domain.dto;

import java.math.BigDecimal;
import java.time.LocalDate;

import com.fasterxml.jackson.annotation.JsonFormat;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 公维金资金申请业务基础信息DTO
 *
 * @author liangp
 * @date 2023/02/17
 */
@ApiModel(description = "公维金资金申请业务基础信息")
public class GwjMaintenanceFundsBusinessInfoDTO {

    private static final long serialVersionUID = 1L;

    /**
     *
     */
    private Long businessInfoId;

    /**
     * 业务ID(yw_id)
     */
    @ApiModelProperty(value = "业务ID(yw_id)")
    private Long bizId;

    /**
     * 维修项目(weixiuxiangmu)
     */
    @ApiModelProperty(value = "维修项目(weixiuxiangmu)")
    private String maintenanceItems;

    /**
     * 维修原因(weixiuyuanyin)
     */
    @ApiModelProperty(value = "维修原因(weixiuyuanyin)")
    private String maintenanceReason;

    /**
     * 申报日期(shenbaoriqi)
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "申报日期(shenbaoriqi)")
    private LocalDate declarationDate;

    /**
     * 工程预算金额(gongchengyusuanjine)
     */
    @ApiModelProperty(value = "工程预算金额(gongchengyusuanjine)")
    private BigDecimal projectBudgetAmount;

    /**
     * 预算拨款金额(yusuanbochujine)
     */
    @ApiModelProperty(value = "预算拨出金额(yusuanbochujine)")
    private BigDecimal budgetAppropriationAmount;

    /**
     * 实际分摊金额(shijifentanzongjine)
     */
    @ApiModelProperty(value = "实际分摊金额(shijifentanzongjine)")
    private BigDecimal actualAllocationAmount;

    /**
     * 施工单位(shigongdanwei)
     */
    @ApiModelProperty(value = "施工单位(shigongdanwei)")
    private String constructionUnitName;

    /**
     * 收款单位全称(收款户名)(shoukuandanweiquancheng)
     */
    @ApiModelProperty(value = "收款单位全称(收款户名)(shoukuandanweiquancheng)")
    private String payeeName;

    /**
     * 申请单位全程(shenqingdanwei_quancheng)
     */
    @ApiModelProperty(value = "申请单位全称(shenqingdanwei_quancheng)")
    private String applicationUnitName;

    /**
     * 涉及总金额(shejizongjine)
     */
    @ApiModelProperty(value = "涉及总金额(shejizongjine)")
    private BigDecimal totalInvolvedAmount;

    /**
     * 涉及总面积(shejizongmianji)
     */
    @ApiModelProperty(value = "涉及总面积(shejizongmianji)")
    private BigDecimal totalInvolvedArea;

    /**
     * 涉及总户数(shejizonghushu)
     */
    @ApiModelProperty(value = "涉及总户数(shejizonghushu)")
    private Integer totalHouseholds;

    /**
     * 应交金额(yingjiaojine)
     */
    @ApiModelProperty(value = "应交金额(yingjiaojine)")
    private BigDecimal amountPayable;

    /**
     * 实缴金额(shijiaojine)
     */
    @ApiModelProperty(value = "实缴金额(shijiaojine)")
    private BigDecimal amountReality;

    /**
     * 计算标准 1=按现房面积平摊,2=按期房面积平摊,3=按户平摊
     */
    @ApiModelProperty(value = "计算标准 1:按现房面积平摊 2:按期房面积平摊 3:按户平摊")
    private Integer calculationStandard;

    /**
     * 拨款方式：默认为1一次拨付，2为二次拨付
     */
    @ApiModelProperty(value = "拨款方式：默认为1一次拨付，2为二次拨付")
    private Integer appropriationWay;

    /**
     * 施工单位(shigongdanwei)
     */
    @ApiModelProperty(value = "施工单位(shigongdanwei)")
    private String constructionUnit;

    /**
     * 开户银行(kaihuyinhang)
     */
    @ApiModelProperty(value = "开户银行(kaihuyinhang)")
    private String bankDeposit;

    /**
     * 收款账号(shoukuanzhanghao)
     */
    @ApiModelProperty(value = "收款账号(shoukuanzhanghao)")
    private String collectionAccount;

    /**
     * 验收方案(yanshoufangan)
     */
    @ApiModelProperty(value = "验收方案(yanshoufangan)")
    private String acceptancePlan;

    /**
     * 实际面积
     */
    @ApiModelProperty(value = "实际面积")
    private BigDecimal actualArea;
    /**
     * 实际拨款时间
     */
    @ApiModelProperty(value = "实际拨款时间")
    private LocalDate actualAllocatedTime;
    /**
     * 实际拨出金额
     */
    @ApiModelProperty(value = "实际拨出金额")
    private BigDecimal actualAllocatedSettlementAmount;
    /**
     * 实际备注信息
     */
    @ApiModelProperty(value = "实际备注信息")
    private String actualRemark;

    /**
     * 第二期款项
     */
    @ApiModelProperty(value = "第二期款项")
    private BigDecimal secondAppropriationAmount;

    /**
     * 决算总金额
     */
    @ApiModelProperty(value = "决算总金额")
    private BigDecimal totalSettlementAmount;

    /**
     * 决算拨出总金额
     */
    @ApiModelProperty(value = "决算拨出总金额")
    private BigDecimal totalAllocatedSettlementAmount;

    public LocalDate getActualAllocatedTime() {
        return actualAllocatedTime;
    }

    public void setActualAllocatedTime(LocalDate actualAllocatedTime) {
        this.actualAllocatedTime = actualAllocatedTime;
    }

    public BigDecimal getActualAllocatedSettlementAmount() {
        return actualAllocatedSettlementAmount;
    }

    public void setActualAllocatedSettlementAmount(BigDecimal actualAllocatedSettlementAmount) {
        this.actualAllocatedSettlementAmount = actualAllocatedSettlementAmount;
    }

    public String getActualRemark() {
        return actualRemark;
    }

    public void setActualRemark(String actualRemark) {
        this.actualRemark = actualRemark;
    }

    public BigDecimal getActualArea() {
        return actualArea;
    }

    public void setActualArea(BigDecimal actualArea) {
        this.actualArea = actualArea;
    }

    public Long getBusinessInfoId() {
        return businessInfoId;
    }

    public void setBusinessInfoId(Long businessInfoId) {
        this.businessInfoId = businessInfoId;
    }

    public Long getBizId() {
        return bizId;
    }

    public void setBizId(Long bizId) {
        this.bizId = bizId;
    }

    public String getMaintenanceItems() {
        return maintenanceItems;
    }

    public void setMaintenanceItems(String maintenanceItems) {
        this.maintenanceItems = maintenanceItems;
    }

    public String getMaintenanceReason() {
        return maintenanceReason;
    }

    public void setMaintenanceReason(String maintenanceReason) {
        this.maintenanceReason = maintenanceReason;
    }

    public LocalDate getDeclarationDate() {
        return declarationDate;
    }

    public void setDeclarationDate(LocalDate declarationDate) {
        this.declarationDate = declarationDate;
    }

    public BigDecimal getActualAllocationAmount() {
        return actualAllocationAmount;
    }

    public void setActualAllocationAmount(BigDecimal actualAllocationAmount) {
        this.actualAllocationAmount = actualAllocationAmount;
    }

    public BigDecimal getProjectBudgetAmount() {
        return projectBudgetAmount;
    }

    public void setProjectBudgetAmount(BigDecimal projectBudgetAmount) {
        this.projectBudgetAmount = projectBudgetAmount;
    }

    public String getConstructionUnitName() {
        return constructionUnitName;
    }

    public void setConstructionUnitName(String constructionUnitName) {
        this.constructionUnitName = constructionUnitName;
    }

    public String getPayeeName() {
        return payeeName;
    }

    public void setPayeeName(String payeeName) {
        this.payeeName = payeeName;
    }

    public String getApplicationUnitName() {
        return applicationUnitName;
    }

    public void setApplicationUnitName(String applicationUnitName) {
        this.applicationUnitName = applicationUnitName;
    }

    public BigDecimal getTotalInvolvedAmount() {
        return totalInvolvedAmount;
    }

    public void setTotalInvolvedAmount(BigDecimal totalInvolvedAmount) {
        this.totalInvolvedAmount = totalInvolvedAmount;
    }

    public BigDecimal getTotalInvolvedArea() {
        return totalInvolvedArea;
    }

    public void setTotalInvolvedArea(BigDecimal totalInvolvedArea) {
        this.totalInvolvedArea = totalInvolvedArea;
    }

    public Integer getTotalHouseholds() {
        return totalHouseholds;
    }

    public void setTotalHouseholds(Integer totalHouseholds) {
        this.totalHouseholds = totalHouseholds;
    }

    public BigDecimal getAmountPayable() {
        return amountPayable;
    }

    public void setAmountPayable(BigDecimal amountPayable) {
        this.amountPayable = amountPayable;
    }

    public BigDecimal getAmountReality() {
        return amountReality;
    }

    public void setAmountReality(BigDecimal amountReality) {
        this.amountReality = amountReality;
    }

    public Integer getCalculationStandard() {
        return calculationStandard;
    }

    public void setCalculationStandard(Integer calculationStandard) {
        this.calculationStandard = calculationStandard;
    }

    public Integer getAppropriationWay() {
        return appropriationWay;
    }

    public void setAppropriationWay(Integer appropriationWay) {
        this.appropriationWay = appropriationWay;
    }

    public String getConstructionUnit() {
        return constructionUnit;
    }

    public void setConstructionUnit(String constructionUnit) {
        this.constructionUnit = constructionUnit;
    }

    public String getBankDeposit() {
        return bankDeposit;
    }

    public void setBankDeposit(String bankDeposit) {
        this.bankDeposit = bankDeposit;
    }

    public String getCollectionAccount() {
        return collectionAccount;
    }

    public void setCollectionAccount(String collectionAccount) {
        this.collectionAccount = collectionAccount;
    }

    public String getAcceptancePlan() {
        return acceptancePlan;
    }

    public void setAcceptancePlan(String acceptancePlan) {
        this.acceptancePlan = acceptancePlan;
    }

    public BigDecimal getBudgetAppropriationAmount() {
        return budgetAppropriationAmount;
    }

    public void setBudgetAppropriationAmount(BigDecimal budgetAppropriationAmount) {
        this.budgetAppropriationAmount = budgetAppropriationAmount;
    }

    public BigDecimal getSecondAppropriationAmount() {
        return secondAppropriationAmount;
    }

    public void setSecondAppropriationAmount(BigDecimal secondAppropriationAmount) {
        this.secondAppropriationAmount = secondAppropriationAmount;
    }

    public BigDecimal getTotalSettlementAmount() {
        return totalSettlementAmount;
    }

    public void setTotalSettlementAmount(BigDecimal totalSettlementAmount) {
        this.totalSettlementAmount = totalSettlementAmount;
    }

    public BigDecimal getTotalAllocatedSettlementAmount() {
        return totalAllocatedSettlementAmount;
    }

    public void setTotalAllocatedSettlementAmount(BigDecimal totalAllocatedSettlementAmount) {
        this.totalAllocatedSettlementAmount = totalAllocatedSettlementAmount;
    }

    @Override
    public String toString() {
        return "GwjMaintenanceFundsBusinessInfoDTO{" + "businessInfoId=" + businessInfoId + ", bizId=" + bizId + ", maintenanceItems='" + maintenanceItems + '\'' + ", maintenanceReason='" + maintenanceReason + '\'' + ", declarationDate=" + declarationDate + ", projectBudgetAmount=" + projectBudgetAmount + ", budgetAppropriationAmount=" + budgetAppropriationAmount + ", actualAllocationAmount=" + actualAllocationAmount + ", constructionUnitName='" + constructionUnitName + '\'' + ", payeeName='"
            + payeeName + '\'' + ", applicationUnitName='" + applicationUnitName + '\'' + ", totalInvolvedAmount=" + totalInvolvedAmount + ", totalInvolvedArea=" + totalInvolvedArea + ", totalHouseholds=" + totalHouseholds + ", amountPayable=" + amountPayable + ", amountReality=" + amountReality + ", calculationStandard=" + calculationStandard + ", appropriationWay=" + appropriationWay + ", constructionUnit='" + constructionUnit + '\'' + ", bankDeposit='" + bankDeposit + '\''
            + ", collectionAccount='" + collectionAccount + '\'' + ", acceptancePlan='" + acceptancePlan + '\'' + ", actualArea=" + actualArea + ", actualAllocatedTime=" + actualAllocatedTime + ", actualAllocatedSettlementAmount=" + actualAllocatedSettlementAmount + ", actualRemark='" + actualRemark + '\'' + ", secondAppropriationAmount=" + secondAppropriationAmount + ", totalSettlementAmount=" + totalSettlementAmount + ", totalAllocatedSettlementAmount=" + totalAllocatedSettlementAmount + '}';
    }
}
